package com.zz.common.annotation;

import com.zz.common.enums.MessageType;
import com.zz.common.protocol.DefaultProtocol;
import com.zz.common.protocol.TunnelProtocol;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 消息执行器注解
 *
 * @author zz
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Executor {

    /**
     * 协议类型
     * @return
     */
    Class<? extends TunnelProtocol> protocol() default DefaultProtocol.class;

    MessageType msgType() default MessageType.EMPTY_TYPE;
}
